package com.ddzh.web;

import com.ddzh.dto.SetmealDto;
import com.ddzh.entity.PageReq;
import com.ddzh.entity.PageRes;
import com.ddzh.entity.Result;
import com.ddzh.pojo.Setmeal;
import com.ddzh.service.SetmealService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/setMealController")
public class SetmealController {


    @Reference
    private SetmealService setmealService;

    @GetMapping("/findAll")
    public Result findAll(){
        return new Result(setmealService.list());
    }

    @PostMapping("/findByPage")
    public Result findByPage(@RequestBody PageReq pageReq){
        PageRes<Setmeal> byPage = setmealService.findByPage(pageReq);
        System.out.println("byPage = " + byPage);
        return new Result(byPage);
    }

    @PostMapping("/save")
    public Result save(@RequestBody SetmealDto setmealDto){
        return new Result(setmealService.saveOrUpdateDto(setmealDto));
    }

    @GetMapping("/delete/{setmeal_id}")
    public Result delete(@PathVariable("setmeal_id") Long setmeal_id){
        return new Result(setmealService.deleteById(setmeal_id));
    }

    /**
     * 对应前端鼠标取消事件
     * 这时候有哪些图片要删除：
     * 1.成功提交的图片从redis的set集合中移除 =>留到图片缓存过期时再清除
     * 2.redis中过期的图片从redis和oss中删除
     * 就是，所有的图片都预留了一个缓存时间
     * @return
     */
//    将手动清除改为自动清除时，这一段代码就不需要了
    @GetMapping("/clearOssObject")
    public Result clearOssObject(){
        return new Result(setmealService.clearOssObject());
    }
}
